package ru.mcfr.oxygen.util.ui.treetable;/*
 * %W% %E%
 *
 * Copyright 1997, 1998 Sun Microsystems, Inc. All Rights Reserved.
 * 
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 * 
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer. 
 *   
 * - Redistribution in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials
 *   provided with the distribution. 
 *   
 * Neither the name of Sun Microsystems, Inc. or the names of
 * contributors may be used to endorse or promote products derived
 * from this software without specific prior written permission.  
 * 
 * This software is provided "AS IS," without a warranty of any
 * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
 * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
 * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY
 * DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT OF OR
 * RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE OR
 * ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE 
 * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT,   
 * SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER  
 * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF 
 * THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS 
 * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 * 
 * You acknowledge that this software is not designed, licensed or
 * intended for use in the design, construction, operation or
 * maintenance of any nuclear facility.
 */

import org.w3c.dom.Document;
import ru.mcfr.oxygen.util.FillIDs;

import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Properties;

/**
 * A TreeTable example, showing a JTreeTable, operating on the local file
 * system.
 *
 * @author Philip Milne
 * @version %I% %G%
 */

public class TreeTableExample0 {

    public static void main(String[] args) {
        String xml = "<документ xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" doc=\"\" type=\"82\"\n" +
                "    xsi:noNamespaceSchemaLocation=\"http://10.0.65.13/control/get_schema_by_id/?s=8\">\n" +
                "    <метаданные>\n" +
                "        <полное_название/>\n" +
                "        <продукты>\n" +
                "            <продукт продукт=\"0\"/>\n" +
                "        </продукты>\n" +
                "        <тематики>\n" +
                "            <тематика рубрикатор=\"0\"/>\n" +
                "        </тематики>\n" +
                "        <тип_материала id=\"0\"/>\n" +
                "        <регион_действия_документа id=\"0\"/>\n" +
                "        <язык id=\"167\"/>\n" +
                "    </метаданные>\n" +
                "    <шапка_документа id=\"1\">\n" +
                "        <зарегистрирован id=\"29\">\n" +
                "            <абзац id=\"28\" выравнивание=\"центр\">Зарегистрирован в Минюсте России 28.01.2011,\n" +
                "                регистрационный № 19626</абзац>\n" +
                "        </зарегистрирован>\n" +
                "        <абзац id=\"2\">Российская Федерация</абзац>\n" +
                "        <абзац id=\"3\">Федеральный закон</абзац>\n" +
                "        <абзац id=\"4\">29 ноября 2010 года № 319-ФЗ</абзац>\n" +
                "        <название id=\"5\">О внесении изменений в статью 51 Федерального закона \"О воинской\n" +
                "            обязанности и военной службе\"</название>\n" +
                "        <принят id=\"6\">\n" +
                "            <абзац id=\"7\">Принят</абзац>\n" +
                "            <абзац id=\"8\">Государственной Думой</абзац>\n" +
                "            <абзац id=\"9\">16.11.2010</абзац>\n" +
                "        </принят>\n" +
                "        <одобрен id=\"10\">\n" +
                "            <абзац id=\"11\">Одобрен</абзац>\n" +
                "            <абзац id=\"12\">Советом Федерации</абзац>\n" +
                "            <абзац id=\"13\">24.11.2010</абзац>\n" +
                "        </одобрен>\n" +
                "    </шапка_документа>" +
                "<обобщающий_текст id=\"30\">Внести в статью 51 Федерального закона от 28 марта\n" +
                "        1998 года № 53-ФЗ \"О воинской обязанности и военной службе\" (Собрание законодательства\n" +
                "        Российской Федерации, 1998, № 13, ст. 1475; 2006, № 1, ст. 10; 2008, № 30, ст. 3616)\n" +
                "        следующие изменения:</обобщающий_текст>" +
                "<абзац id=\"31\"/><пункт id=\"32\" номер=\"1\">\n" +
                "        <обобщающий_текст id=\"33\">1) дополнить пунктом 11 следующего содержания:</обобщающий_текст>\n" +
                "        <псевдосписок id=\"34\">\n" +
                "            <элемент_пс id=\"35\">\n" +
                "                <абзац id=\"36\">\"11 . Медицинское освидетельствование граждан, указанных в пункте 1\n" +
                "                    настоящей статьи и являющихся детьми-инвалидами, инвалидами I группы или имеющих\n" +
                "                    иную группу инвалидности без указания срока переосвидетельствования, в связи с\n" +
                "                    исполнением ими воинской обязанности с их согласия или с согласия их законных\n" +
                "                    представителей проводится заочно на основании документов, перечень которых\n" +
                "                    определяется Положением о военно-врачебной экспертизе, утверждаемым\n" +
                "                    уполномоченным федеральным органом исполнительной власти.\";</абзац>\n" +
                "                <элемент_пс/>\n" +
                "            </элемент_пс>\n" +
                "        </псевдосписок>\n" +
                "    </пункт>2) в пункте 3 слова \", утверждаемым уполномоченным федеральным органом исполнительной\n" +
                "    власти\" исключить. <подпись_документа id=\"23\"><пункт id=\"768\" номер=\"1\">\n" +
                "            <обобщающий_текст id=\"769\">1) дополнить пунктом 11 следующего\n" +
                "                содержания:</обобщающий_текст>\n" +
                "            <псевдосписок id=\"770\">\n" +
                "                <элемент_пс id=\"771\">\n" +
                "                    <абзац id=\"772\">\"11 . Медицинское освидетельствование граждан, указанных в\n" +
                "                        пункте 1 настоящей статьи и являющихся детьми-инвалидами, инвалидами I\n" +
                "                        группы или имеющих иную группу инвалидности без указания срока\n" +
                "                        переосвидетельствования, в связи с исполнением ими воинской обязанности с их\n" +
                "                        согласия или с согласия их законных представителей проводится заочно на\n" +
                "                        основании документов, перечень которых определяется Положением о\n" +
                "                        военно-врачебной экспертизе, утверждаемым уполномоченным федеральным органом\n" +
                "                        исполнительной власти.\";</абзац>\n" +
                "                </элемент_пс>\n" +
                "            </псевдосписок>\n" +
                "        </пункт>2) в пункте 3 слова \", утверждаемым уполномоченным федеральным органом\n" +
                "        исполнительной власти\" исключить. <подпись_документа id=\"773\"/><таблица border-collapse=\"\"\n" +
                "            id=\"524\">\n" +
                "            <группировка_колонок id=\"525\">\n" +
                "                <колонка id=\"526\" width=\"50px\"/>\n" +
                "                <колонка id=\"527\" width=\"50px\"/>\n" +
                "            </группировка_колонок>\n" +
                "            <строка id=\"528\">\n" +
                "                <ячейка border-bottom=\"1px solid #000000\" border-left=\"1px solid #000000\"\n" +
                "                    border-right=\"1px solid #000000\" border-top=\"1px solid #000000\" id=\"529\">\n" +
                "                    <абзац id=\"530\"/>\n" +
                "                </ячейка>\n" +
                "                <ячейка border-bottom=\"1px solid #000000\" border-right=\"1px solid #000000\"\n" +
                "                    border-top=\"1px solid #000000\" id=\"531\">\n" +
                "                    <абзац id=\"532\"/>\n" +
                "                </ячейка>\n" +
                "            </строка>\n" +
                "            <строка id=\"533\">\n" +
                "                <ячейка border-bottom=\"1px solid #000000\" border-left=\"1px solid #000000\"\n" +
                "                    border-right=\"1px solid #000000\" id=\"534\">\n" +
                "                    <абзац id=\"535\"/>\n" +
                "                </ячейка>\n" +
                "                <ячейка border-bottom=\"1px solid #000000\" border-right=\"1px solid #000000\" id=\"536\">\n" +
                "                    <абзац id=\"537\"/>\n" +
                "                </ячейка>\n" +
                "            </строка>\n" +
                "            <строка id=\"538\">\n" +
                "                <ячейка border-bottom=\"1px solid #000000\" border-left=\"1px solid #000000\"\n" +
                "                    border-right=\"1px solid #000000\" id=\"539\">\n" +
                "                    <абзац id=\"540\"/>\n" +
                "                </ячейка>\n" +
                "                <ячейка border-bottom=\"1px solid #000000\" border-right=\"1px solid #000000\" id=\"541\">\n" +
                "                    <абзац id=\"542\"/>\n" +
                "                </ячейка>\n" +
                "            </строка>\n" +
                "        </таблица></подпись_документа>" +

                "<подпись_документа id=\"23\">\n" +
                "        <таблица border-collapse=\"\" id=\"753\">\n" +
                "            <группировка_колонок id=\"754\">\n" +
                "                <колонка id=\"755\" width=\"215.0px\"/>\n" +
                "                <колонка id=\"756\" width=\"300.0px\"/>\n" +
                "            </группировка_колонок>\n" +
                "            <строка id=\"757\">\n" +
                "                <ячейка border-bottom=\"1px solid #000000\" border-left=\"1px solid #000000\"\n" +
                "                    border-right=\"1px solid #000000\" border-top=\"1px solid #000000\" id=\"758\">\n" +
                "                    <абзац id=\"759\">jfdfkljhg dfjhgfd jhgdklfjhg dljkg hdsljh dkljfghdfjkghdlfjghdl\n" +
                "                        kjfhgdfljkh gdfjhg </абзац>\n" +
                "                </ячейка>\n" +
                "                <ячейка border-bottom=\"1px solid #000000\" border-right=\"1px solid #000000\" id=\"760\"\n" +
                "                    rowspan=\"2\" border-top=\"1px solid #000000\">\n" +
                "                    <абзац id=\"761\">sfb fkdljhgdfkjhgdkfjgh dkfjgdkflj hgkljhkjhxlkbjhck\n" +
                "                        bjhcklvjbhdsf lkjhdfkljghd kdfk glhdkjhdfklg jhd fkj dkhd dfkjh\n" +
                "                        dfkljhgdkfljh dfkjhg dkfh kdfh kdfhg dkh dfkjh dklj dfkljg hdkljfhglkdf\n" +
                "                        dsfkljhg dfkjgdteri [earop dfk;llck x;lgoer poeirgodij fklfjg kljcsr\n" +
                "                        pqeiupij fsdakjf sakdjf sdkljdfkljhxclkjzh lzhfdieua fidj fhlkxhv ldk fvxzff\n" +
                "                        dai aepru aij zjkvzx lkjhzxkljhafpfisJD asjdf sdj fsl;dj fsal;djf\n" +
                "                        sajfderiweurg hlxh </абзац>\n" +
                "                </ячейка>\n" +
                "            </строка>\n" +
                "            <строка id=\"762\">\n" +
                "                <ячейка border-bottom=\"1px solid #000000\" border-left=\"1px solid #000000\"\n" +
                "                    border-right=\"1px solid #000000\" id=\"763\">\n" +
                "                    <абзац id=\"764\">lkj dfj ghfhgkfdjhgdkljf gkldj hgdlkg hdlkjgdklfjg hdkj hgdklfj\n" +
                "                        ghdkljf ghdflkjgh dklfj hdfkljg hklfj hgdkljfg hdklfjg hdlkjfhdlkfjg\n" +
                "                        hlkjhgdkljg hldkjhf gldkjh g</абзац>\n" +
                "                </ячейка>\n" +
                "            </строка>\n" +
                "            <строка id=\"765\">\n" +
                "                <ячейка border-bottom=\"1px solid #000000\" border-left=\"1px solid #000000\"\n" +
                "                    border-right=\"1px solid #000000\" colspan=\"2\" id=\"766\">\n" +
                "                    <абзац id=\"767\">jkhsdlkfj hdslkfhsdklfj hslkjfhslfjhslkdjfhsalkjd fhsjfhslkj\n" +
                "                        hfslkd f fs sklfh sljfhslkjdfh skdfsklh skj hs s hkslh fslkdfh slkjhfslkdhf\n" +
                "                    </абзац>\n" +
                "                </ячейка>\n" +
                "            </строка>\n" +
                "        </таблица>\n" +
                "        <подписан id=\"24\">\n" +
                "            <абзац id=\"24\">Президент</абзац>\n" +
                "            <абзац id=\"24\">Президент</абзац>\n" +
                "            <абзац>Российской Федерации</абзац>\n" +
                "            <абзац id=\"\">Д. Медведев</абзац>\n" +
                "        </подписан>\n" +
                "        <подписан id=\"id-ref\">\n" +
                "            <абзац>выоларываыопр аыопаыфволп </абзац>\n" +
                "        </подписан>\n" +
                "    </подпись_документа>\n" +
                "</документ>";


        FillIDs fill = new FillIDs();

        Document doc = fill.docFromFile("/home/wstarcev/workspace/post_68.xml");

        fill.docToFile(fill.fillXML(doc), "/home/wstarcev/workspace/post_68(2).xml");

        System.out.println(fill.fillXML(xml));

//
//        JFrame frame = new JFrame("Editable Tree");
//
//    //tree.setEditable(true);
//    //DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) treeTable.getCellRenderer();
//    String elements[] = { "Root", "chartreuse", "rugby", "sushi" };
//    JComboBox comboBox = new JComboBox();
//
//        comboBox.setRenderer(new ListCellRenderer() {
//            JTreeTable treeTable = new JTreeTable(new FileSystemModel());
//            public Component getListCellRendererComponent(JList jList, Object o, int i, boolean b, boolean b1) {
//                return treeTable;  //To change body of implemented methods use File | Settings | File Templates.
//            }
//        });
//
////        comboBox.setModel(new ComboBoxModel() {
////            public void setSelectedItem(Object o) {
////                //To change body of implemented methods use File | Settings | File Templates.
////            }
////
////            public Object getSelectedItem() {
////                return treeTable.getSelectionPath().getPathComponent(0);  //To change body of implemented methods use File | Settings | File Templates.
////            }
////
////            public int getSize() {
////                return 3;  //To change body of implemented methods use File | Settings | File Templates.
////            }
////
////            public Object getElementAt(int i) {
////                return null;  //To change body of implemented methods use File | Settings | File Templates.
////            }
////
////            public void addListDataListener(ListDataListener listDataListener) {
////                //To change body of implemented methods use File | Settings | File Templates.
////            }
////
////            public void removeListDataListener(ListDataListener listDataListener) {
////                //To change body of implemented methods use File | Settings | File Templates.
////            }
////        });
//
//    comboBox.setEditable(true);
////    TreeCellEditor comboEditor = new DefaultCellEditor(comboBox);
////    TreeCellEditor editor = new DefaultTreeCellEditor(tree, renderer,
////        comboEditor);
////    tree.setCellEditor(editor);
//    JScrollPane scrollPane = new JScrollPane(comboBox);
//    frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
//    frame.setSize(300, 150);
//    frame.setVisible(true);
        //new TreeTableExample0();
    }

    public TreeTableExample0() {
        JFrame frame = new JFrame("TreeTable");

        Properties props = new Properties();
        props.setProperty("url-to-docTypes", "http://10.0.64.221/mtypes/get_types_list/");
        props.setProperty("url-to-schemas", "http://10.0.64.221/schemaes/get_schemaes_list/");
        props.setProperty("use-proxy", "true");

        props.setProperty("proxy-user-password", "dfcbkbq1");
        props.setProperty("proxy-server", "10.0.64.128");
        props.setProperty("proxy-user-name", "vstartcev");
        props.setProperty("proxy-port", "8080");

        //JTreeTable treeTable = new JTreeTable(new SchemaInfoModel(new TypesAndSchemasInfoGetter(props).getInfo()));
        JTreeTable treeTable = new JTreeTable(new FileSystemModel());

        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent we) {
                System.exit(0);
            }
        });

        frame.getContentPane().add(new JScrollPane(treeTable));
        frame.pack();
        frame.show();
    }
}

